package com.itheima.d5_regex;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 目标：掌握正则表达式的书写规则
 */
public class RegexTest2 {
    public static void main(String[] args) {
        // 1、字符类(只能匹配单个字符)
"a".matches("[a-zA-Z0-9]");
        // 2、预定义字符(只能匹配单个字符)  .  \d  \D   \s  \S  \w  \W

        // \转义
        System.out.println("\"");
        // \n \t

        // 3、数量词： ?   *   +   {n}   {n, }  {n, m}

        // 4、其他几个常用的符号：(?i)忽略大小写 、 或：| 、  分组：()
        System.out.println("\"A\".matches(\"(?i)a\") = " + "A".matches("(?i)a"));
        System.out.println("\"a\".matches(\"[a|b|c]\") = " + "a".matches("[a|b|c]"));

        // 需求1：要求要么是3个小写字母，要么是3个数字。 [a-z]{3}|\d{3}
        System.out.println("\"aaa\".matches(\"[a-z]{3}|[0-9]{3}\") = " + "123".matches("[a-z]{3}|\\d{3}"));
        // 需求2：必须是”我爱“开头，中间可以是至少一个”编程“，最后至少是1个”666“
        String str = "我爱编程编程666666我爱编程编程666666我爱编程编程666666我爱编程编程666666我爱编程编程666666我爱编程编程666666我爱编程编程666666";
        Pattern compile = Pattern.compile(str);
        Matcher matcher = compile.matcher("我爱(编程){1,}(666){1,}");
        System.out.println(str.matches("我爱(编程){2}(666){2}"));
        System.out.println("matcher.find() = " +matcher.find());


    }
}
